Field of the Invention
Embodiments of the present invention generally relate to software interoperability and compatibility and, more particularly, to a method and apparatus for managing 64-bit registry keys using a 32-bit installer.
Description of the Related Art
Installing new applications is a common task for many computer users. As such, software installation must be easy and uncomplicated. During software installation, a substantial amount of automated procedures occur that do not require user interaction. In an effort to automate as many of these procedures as possible, certain limitations are placed on the types of applications/plug-ins that may be installed e.g., limits are placed on mixing 32-bit applications with 64-bit plug-ins.
When applications are installed on a computer, a registry is created. A registry is a hierarchical structure containing data that is critical for the operation of, for example, WINDOWS® and applications that run on WINDOWS®. The registry is structured in a tree format and each node has a key. Often the presence of a key is all an application requires to run, but sometimes the key may be associated with a value. A hive is a group of keys and values in the registry that has a set of supporting files containing backups of the hive's data. For example, when an application is installed, user specific data is recorded under the HKEY_CURRENT_USER key. Registry entries under this key define user preferences such as application settings, printers, network connections, and the like. In addition, when the application is installed, computer specific data is recorded under the HKEY_LOCAL_MACHINE key. Registry entries under this key define the physical state of the computer, including data about system memory, and installed hardware and software.
Issues arise when a 32-bit application is installed on a computer with 64-bit components. A 64-bit component may be able to run faster and more effectively than a 32-bit component. Many essential applications were created on a 32-bit platform, but as technology has advanced, 64-bit components (or plug-ins) have been developed to work with these 32-bit applications. For example, ADOBE ACROBAT® is a 32-bit application, but supports creation of PDF files from 64-bit applications, such as MICROSOFT OFFICE® applications.
As a general rule, 32-bit applications require 32-bit installers. However, the 64-bit components that are built to work with these 32-bit applications require a 64-bit installer. This is because the 32-bit applications required 32-bit registry keys in a 32-bit hive, while the 64-bit components require 64-bit registry keys in a 64-bit hive. The WINDOWS® Installer is not capable of creating registry keys in 64-bit hive using a 32-bit installer. The WINDOWS® Installer can only create registry keys in 64-bit registry hive using a 64-bit installer.
One solution requires the 32-bit applications to maintain two different installers, namely a 32-bit installer for the 32-bit components, and a 64-bit installer for the 64-bit components. This requires costly development and management of two installers and adds complexity to the user. A user must run a 32-bit installer to install 32-bit components and then run a 64-bit installer to install 64-bit components, thereby making software installation more complicated for the user.
Therefore, there is a need for a method and apparatus for managing 64-bit registry keys using a 32-bit installer.